modules: Blacklist gail
authorBenjamin Otte <otte@redhat.com>
Tue, 5 Jul 2011 20:33:22 +0000 (22:33 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 6 Jul 2011 14:50:09 +0000 (16:50 +0200)
And print a message when somebody has it enabled that indicates that
something is wrong but doesn't sound too scary.

gtk/gtkmodules.c

index 5fa2abf8a13ffd35a42526ff3da7fa6c830730bf..57765256bb60575ba32d6c1f0089113895de40aa 100644 (file)
@@ -258,6 +258,18 @@ cmp_module (GtkModuleInfo *info,
   return info->module != module;
 }
 
+static gboolean
+module_is_blacklisted (const gchar *name)
+{
+  if (g_str_equal (name, "gail"))
+    {
+      g_message ("Not loading module \"gail\": The functionality is provided by GTK natively. Please try to not load it.");
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
 static GSList *
 load_module (GSList      *module_list,
             const gchar *name)
@@ -289,7 +301,14 @@ load_module (GSList      *module_list,
 
          if (module)
            {
-             if (g_module_symbol (module, "gtk_module_init", &modinit_func_ptr))
+              /* Do the check this late so we only warn about existing modules,
+               * not old modules that are still in the modules path. */
+              if (module_is_blacklisted (name))
+                {
+                  modinit_func = NULL;
+                  success = TRUE;
+                }
+              else if (g_module_symbol (module, "gtk_module_init", &modinit_func_ptr))
                modinit_func = modinit_func_ptr;
              else
                modinit_func = NULL;